package com.minimalist.basic.service;

import com.minimalist.common.config.mybatis.bo.PageResp;
import com.minimalist.common.entity.basic.vo.operatorlog.OperatorLogQueryVO;
import com.minimalist.common.entity.basic.vo.operatorlog.OperatorLogVO;
import jakarta.validation.constraints.NotNull;

import java.util.List;

/**
 * 操作日志表 服务层。
 *
 * @author 11987
 * @since 2025-01-23
 */
public interface OperatorLogService{

    /***
     * 添加操作日志
     * @param operatorLogVO 操作日志对象
     */
    void addOperatorLog(OperatorLogVO operatorLogVO);

    /**
     * 分页查询操作日志列表
     *
     * @param queryVO 查询条件
     * @return 分页查询结果
     */
    PageResp<OperatorLogVO> getPageOperatorList(OperatorLogQueryVO queryVO);

    /**
     * 根据操作日志ID删除操作日志
     *
     * @param operatorLogId 操作日志ID
     */
    void deleteOperatorLogByOperatorLogId(@NotNull(message = "操作日志ID不能为空") Long operatorLogId);

    /**
     * 根据操作日志ID查询操作日志
     *
     * @param operatorLogId 操作日志ID
     * @return 操作日志对象
     */
    OperatorLogVO getOperatorLogByOperatorLogId(@NotNull(message = "操作日志ID不能为空") Long operatorLogId);

    /**
     * 根据操作日志ID集合批量删除操作日志
     *
     * @param operatorLogIds 操作日志ID集合
     */
    void deleteOperatorLogByOperatorLogIds(@NotNull(message = "操作日志ID集合不能为空") List<Long> operatorLogIds);
}
